#ifndef BUILTIN_FUNCTIONS
#define BUILTIN_FUNCTIONS
#ifndef FUNCTION
#define FUNCTION(name) Variable bi_##name(vector<Variable>&, Environment&)
#endif
#include "environment.hpp"
#include "math.hpp"
using namespace std;

FUNCTION(set);
FUNCTION(core);

FUNCTION(sprintf);

FUNCTION(typeof);
FUNCTION(substr);
FUNCTION(strlen);

FUNCTION(if);
FUNCTION(switch);
FUNCTION(for);
FUNCTION(foreach);
FUNCTION(while);
FUNCTION(break);

FUNCTION(null);
FUNCTION(return);
FUNCTION(exit);
FUNCTION(error);

FUNCTION(local);
FUNCTION(global);
FUNCTION(const);
FUNCTION(deconst);

#endif
